#!/usr/bin/python
# _*_ coding: utf8 _*_
#Created: 2010. 7. 6.
'''
사용법:        a = CGetTrendDay()
               
               #검색어 값
               a.m_listTrendWords
               
               #트위터 전송
               a.SendTextToTwitter()
               
               #6위 부터는 m_listTrendWords의 배열에서 추가.
'''

##GLOBALS
g_stTrendXmlUrl = 'http://searchc.naver.com/ntk/popquery.naver?c_code=srch_rank&init=1&period=day'


##IMPORTS
import urllib2
from BeautifulSoup import BeautifulSoup
import MoPostTwitter


class CGetTrendDay():
    #Member
    m_listTrendWords = ''
   
    #__init__
    def __init__(self):
        pass
        self.GetTrendWords()

    #네이버에서 일일 급상승 검색어 목록 가져와서 파싱하기
    def GetTrendWords(self):
        pass
        global g_stTrendXmlUrl
        
        #url에서 데이터 가지고 오기
        try:
            stContents = urllib2.urlopen(g_stTrendXmlUrl).read()
        except:
            stContents = False
            return False

        #가져온 값이 없거나 오류로 내용이 없으면 종료        
        if stContents == False:
            self.m_listTrendWords = False
            return False
        
        #BS으로 파싱 및 추출
        soup = BeautifulSoup(stContents)
        soupResult = soup.findAll('keyword', limit=10)
        
        #멤버 변수로 저장하고 끝. 한글이 들어있기 대문에 유니코드로 변경
        self.m_listTrendWords = [str(a).replace('<keyword><![CDATA[','').replace(']]></keyword>','').decode('utf8') for a in soupResult]

        #print self.m_listTrendWords
        return True


    def SendTextToTwitter(self):
        pass
        #값이 잘못됐으면 종료
        if self.m_listTrendWords == False:
            return False
        
        stTwitterText = u"[SidWebApp] 현재 급상승 검색어:" + \
                        u" 1위:[" + self.m_listTrendWords[0] + \
                        u"] 2위:[" + self.m_listTrendWords[1] + \
                        u"] 3위:[" + self.m_listTrendWords[2] + \
                        u"] 4위:[" + self.m_listTrendWords[3] + \
                        u"] 5위:[" + self.m_listTrendWords[4] + \
                        u"] (출처:네이버)"

        #print stTwitterText

        #트위터로 보낼 객체 생성
        objTwitter = MoPostTwitter.CPostTwitter()
        try:
            objTwitter.WriteText(stTwitterText)
        except:
            return False

        return True


def main():
    pass
    run = CGetTrendDay()
    run.SendTextToTwitter()
    


if __name__ == "__main__":
    main()
